CPU使用率に問題がないのに、EC2インスタンスの動作が不安定になった時の切り分けと対処
困っていた内容
運用しているT系EC2インスタンスの動作が不安定です。原因切り分けのため、CPU使用率をインスタンス詳細の「モニタリング」より確認しましたが、現時点で高負荷な状況は確認されませんでした。
何が原因だと考えられますか?また、対処法を教えてください。
どう対応すればいいの?
原因の1つとして、EC2インスタンスの「CPUクレジットの枯渇」が考えられます。
切り分けの一環として、インスタンス詳細の「モニタリング」から、「CPUクレジット残高」を確認してください。
「CPUクレジット残高」の値が0に近い場合、動作が不安定になる可能性があります。
インスタンスタイプを変更して、スケールアップをお試しください。
CPUクレジットとは?
T系インスタンスには、一時的にCPUのベースラインを超えたパフォーマンスでインスタンスを稼働させる機能(バースト)があります。
この機能を管理しているのが「CPUクレジット」という値です。バーストが行われると、CPUクレジットを消費します。
CPU クレジットは、100% の使用率で実行されるフル CPU コアのパフォーマンスを 1 分間実現します。その他の vCPU、使用率、時間数の組み合わせを CPU クレジットと同じにすることができます。たとえば、1 個の CPU クレジットは 1 台の vCPU を使用率 50% で 2 分間実行するか、または 2 台の vCPU を使用率 25% で 2 分間実行するのと等しくなります。
CPUクレジットはインスタンスサイズに応じて一定の割合で蓄積され、CPUが使用される度に蓄積したCPUクレジットを消費します。
そのため、インスタンスはCPUクレジットの供給と消費のバランスが取れている状態であるか、CPU使用率スパイクに対応できるより高い性能のインスタンスタイプを選択する必要があります。
参考情報
バーストパフォーマンスインスタンスの CPU クレジットおよびベースラインパフォーマンス - Amazon Elastic Compute Cloud